/**
* 版权所有：福建邮科电信业务部厦门研发中心 
*====================================================
* 文件名称: MyDirect.java
* 修订记录：
* No    日期				作者(操作:具体内容)
* 1.    2013-3-28			詹保山(创建:创建文件)
*====================================================
* 类描述：(说明未实现或其它不应生成javadoc的内容)
* 
*/
package com.devframe.gc.freemarker.directive;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.devframe.gc.meta.FieldMeta;

import freemarker.core.Environment;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateDirectiveModel;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;

public class ZBSGCPageDirective implements TemplateDirectiveModel{

	public void execute(Environment env, Map params, TemplateModel[] loopVars,
			TemplateDirectiveBody body) throws TemplateException, IOException {
		freemarker.template.SimpleSequence ls=(freemarker.template.SimpleSequence) env.getDataModel().get("fieldList");
		Map<String,Object> otherParamsMap=new HashMap<String,Object>();
		otherParamsMap.put("viewMark", false);
		if(params.get("update")!=null && params.get("update").toString().equals("true")){
			otherParamsMap.put("updateMark", true);
		}
		if(params.get("view")!=null && params.get("view").toString().equals("true")){
			otherParamsMap.put("viewMark", true);
		}
		
		
		List<FieldMeta> ls2=ls.toList();
		for(int i=0;i<ls2.size();i++){
			FieldMeta meta=(FieldMeta)ls2.get(i);
			Configuration cfg=env.getConfiguration();
			String fileName=meta.accessTemplatePath();
			Template template=cfg.getTemplate(fileName);
			Map<String,Object> fieldParams=meta.getFieldParams();
			fieldParams.putAll(otherParamsMap);
			template.process(fieldParams, env.getOut());
		}
	}

}
